home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
tool
/
mercury
/
diettsr.c
< prev
next >
Wrap
Text File
|
1994-12-07
|
1KB
|
63 lines
/*
MercuryInstaller for MS-DOS
DIET常駐ルーチン制御
*/
#include<stdlib.h>
#include<dos.h>
#include"mercury.h"
/*---------------------------------変数--------------------------------------*/
static int Diet_mode; /* Dietの初期状態のフラグ */
/* -1...常駐していない */
/* 0...常駐機能無効 */
/* 1...常駐機能有効 */
/*-------------------------------モード設定----------------------------------*/
extern void diet_setmode(bool mode)
{
union REGS regs;
if (Diet_mode==-1)
return;
regs.x.ax = 0x37d3;
regs.x.bx = 0x899d;
regs.x.dx = !mode;
intdos(®s,®s);
}
/*-------------------------------終了時の処理--------------------------------*/
static void diet_end(void)
{
diet_setmode(Diet_mode);
}
/*-------------------------------初期設定------------------------------------*/
extern void diet_init(void)
{
union REGS regs;
regs.x.ax = 0x37d0;
regs.x.bx = 0x899d;
intdos(®s,®s);
if ((signed char)regs.h.al==-1)
{
Diet_mode = -1;
return;
}
regs.x.ax = 0x37d2;
regs.x.bx = 0x899d;
intdos(®s,®s);
Diet_mode = !regs.h.dl; /* DL==0が常駐機能有効を表すが */
/* C言語の慣習に合わせる */
diet_setmode(1); /* 常駐機能ON */
atexit(diet_end);
}
/*-----------------------------End of DIETTSR.C------------------------------*/